Diagramming tool(s) make it easier to create tools that allow people to display and edit information. Conventional diagramming tool(s) have suffered from three major flaws. First, conventional diagramming tool(s) have focused on just the problem of creating diagrams and generally ignored the fact that the diagrams are essentially views of semantically rich data. This makes the application program interface(s) (APIs) cumbersome to use in practice since software developers generally are required to write large amounts of code to keep the diagram and the underlying data synchronized.
Secondly, conventional diagramming tool(s) have had cumbersome APIs that have required software developers to write large amounts of code to support the high quality user interfaces expected in commercial diagramming tools. Finally, The APIs have not supported large complex drawings. Large and complex drawings either cause the software to fail or carry out operations unacceptably slowly.